<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <App></App>
    </div>
    <script>
    // 1.在Vue中使用Vue.extend({})创建组件，extend方法接收一个配置对象（和newVue接收的配置对象类似）
        Vue.config.productionTip=false
// 组件的配置都是独立的，和vm的配置类似（没有el，因为所有的组件最后是App的后代组件，App最终会放在vm实例上被渲染在vm的模板中，el的模板最后会在el容器中渲染
        const App=Vue.extend({
            template:`
            <div>
                <h1>App组件{{count}}</h1>
                <button @click="changeCount">累加</button>
                </div>
            `
            ,
            data(){
                return{
                    count:0
                }
            },
            methods: {
                changeCount(){
                    this.count++
                }
            },
        })
        const vm=new Vue({
            el:"#app",
            data(){
                return{}
            },

            // 2.注册组件（注册完成以后，就能在当前的实例的模板中使用这个组件了）
            components:{
                App
            }
        })
    </script>
</body>
</html>